C# (C Sharp) একটি প্রোগ্রামিং ভাষা যা .NET ফ্রেমওয়ার্কের অংশ। C#-এ JSON ডেটা তৈরি করার প্রক্রিয়া বা serialization খুবই গুরুত্বপূর্ণ, কারণ এটি ওয়েব অ্যাপ্লিকেশন এবং সার্ভিসের মধ্যে ডেটা আদান-প্রদান সহজ করে। C# এর Object থেকে JSON তৈরি করার জন্য সাধারণত Newtonsoft.Json (যা Json.NET নামে পরিচিত) বা System.Text.Json ব্যবহার করা হয়।
C# এর Object থেকে JSON তৈরি করার প্রক্রিয়া
Serialization এর মাধ্যমে একটি C# অবজেক্টকে JSON ফরম্যাটে রূপান্তর করা হয়। এতে আমরা একটি C# অবজেক্টের প্রপার্টি বা ফিল্ডের মান JSON ফরম্যাটে তৈরি করতে পারি।
১. Newtonsoft.Json ব্যবহার করে C# Object থেকে JSON তৈরি করা
Newtonsoft.Json বা Json.NET C# এ JSON অপারেশন করার জন্য একটি জনপ্রিয় লাইব্রেরি। এটি C# অবজেক্টকে JSON এ রূপান্তর করতে খুবই সহজ এবং কার্যকরী।
Newtonsoft.Json লাইব্রেরি ইনস্টল করা:
NuGet প্যাকেজ ম্যানেজার ব্যবহার করে Newtonsoft.Json ইনস্টল করতে হবে:
Install-Package Newtonsoft.Json
উদাহরণ:
ধরা যাক, আমাদের একটি Person ক্লাস রয়েছে, যেটি JSON ফরম্যাটে রূপান্তর করতে হবে।
using Newtonsoft.Json;
using System;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program
{
public static void Main()
{
// C# অবজেক্ট তৈরি করা
Person person = new Person
{
Name = "John Doe",
Age = 30
};
// C# অবজেক্ট থেকে JSON তৈরি করা
string jsonString = JsonConvert.SerializeObject(person);
// JSON আউটপুট প্রদর্শন
Console.WriteLine(jsonString);
}
}
আউটপুট:
{"Name":"John Doe","Age":30}
এখানে, JsonConvert.SerializeObject মেথডটি C# অবজেক্টকে JSON স্ট্রিং এ রূপান্তর করেছে।
২. System.Text.Json ব্যবহার করে C# Object থেকে JSON তৈরি করা
System.Text.Json হল Microsoft-এর তৈরি একটি লাইব্রেরি, যা .NET Core 3.0 এবং পরবর্তী সংস্করণে অন্তর্ভুক্ত করা হয়েছে। এটি Newtonsoft.Json এর তুলনায় দ্রুত এবং হালকা।
উদাহরণ:
using System;
using System.Text.Json;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program
{
public static void Main()
{
// C# অবজেক্ট তৈরি করা
Person person = new Person
{
Name = "John Doe",
Age = 30
};
// C# অবজেক্ট থেকে JSON তৈরি করা
string jsonString = JsonSerializer.Serialize(person);
// JSON আউটপুট প্রদর্শন
Console.WriteLine(jsonString);
}
}
আউটপুট:
{"Name":"John Doe","Age":30}
এখানে, JsonSerializer.Serialize মেথডটি C# অবজেক্টকে JSON স্ট্রিং এ রূপান্তর করেছে।
JSON Serialization Customization
যখন C# অবজেক্ট থেকে JSON তৈরি করা হয়, তখন কিছু ক্ষেত্রে আমরা JSON আউটপুট কাস্টমাইজ করতে চাই। যেমন:
- Property Naming: কিছু ক্ষেত্রে প্রপার্টি নাম পরিবর্তন করতে হতে পারে।
- Ignoring Properties: কিছু প্রপার্টি JSON আউটপুটে অন্তর্ভুক্ত করতে চাই না।
১. Property Naming Customization
Newtonsoft.Json এবং System.Text.Json উভয় লাইব্রেরি তে প্রপার্টির নাম কাস্টমাইজ করা সম্ভব।
Newtonsoft.Json ব্যবহার করে:
using Newtonsoft.Json;
using System;
public class Person
{
[JsonProperty("full_name")] // Custom name for the property
public string Name { get; set; }
[JsonProperty("years_old")] // Custom name for the property
public int Age { get; set; }
}
public class Program
{
public static void Main()
{
Person person = new Person
{
Name = "John Doe",
Age = 30
};
string jsonString = JsonConvert.SerializeObject(person);
Console.WriteLine(jsonString);
}
}
আউটপুট:
{"full_name":"John Doe","years_old":30}
System.Text.Json ব্যবহার করে:
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
public class Person
{
[JsonPropertyName("full_name")] // Custom name for the property
public string Name { get; set; }
[JsonPropertyName("years_old")] // Custom name for the property
public int Age { get; set; }
}
public class Program
{
public static void Main()
{
Person person = new Person
{
Name = "John Doe",
Age = 30
};
string jsonString = JsonSerializer.Serialize(person);
Console.WriteLine(jsonString);
}
}
আউটপুট:
{"full_name":"John Doe","years_old":30}
২. Ignoring Properties
কোনো প্রপার্টি JSON এ না আনার জন্য [JsonIgnore] অ্যাট্রিবিউট ব্যবহার করা যায়।
using Newtonsoft.Json;
using System;
public class Person
{
public string Name { get; set; }
[JsonIgnore] // Ignore this property in JSON output
public int Age { get; set; }
}
public class Program
{
public static void Main()
{
Person person = new Person
{
Name = "John Doe",
Age = 30
};
string jsonString = JsonConvert.SerializeObject(person);
Console.WriteLine(jsonString);
}
}
আউটপুট:
{"Name":"John Doe"}
সারাংশ
C# এ Object Serialization একটি গুরুত্বপূর্ণ প্রক্রিয়া, যার মাধ্যমে C# অবজেক্টগুলোকে JSON ফরম্যাটে রূপান্তর করা হয়। Newtonsoft.Json এবং System.Text.Json হল C# এ JSON তৈরি করার জন্য দুটি জনপ্রিয় লাইব্রেরি। এই লাইব্রেরিগুলির সাহায্যে আমরা সহজেই C# অবজেক্টকে JSON-এ রূপান্তর করতে পারি, এবং JSON ডেটাকে কাস্টমাইজ করতে পারি যেমন প্রপার্টি নাম পরিবর্তন, প্রপার্টি উপেক্ষা করা, ইত্যাদি।
Read more